package com.ultimatech.oath2;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
import org.springframework.security.oauth2.common.OAuth2AccessToken;
import org.springframework.security.oauth2.provider.token.store.JdbcTokenStore;

import javax.sql.DataSource;

/**
 * Created by zhangleping on 2017/11/1.
 */
public class MyJdbcTokenStore extends JdbcTokenStore {

    private Logger log= LoggerFactory.getLogger(MyJdbcTokenStore.class);
    public MyJdbcTokenStore(DataSource dataSource) {
        super(dataSource);
    }
    @Override
    public OAuth2AccessToken readAccessToken(String tokenValue) {
        OAuth2AccessToken accessToken = new DefaultOAuth2AccessToken(tokenValue);
//
//        try {
//            accessToken = jdbcTemplate.queryForObject(selectAccessTokenSql, new RowMapper<OAuth2AccessToken>() {
//                public OAuth2AccessToken mapRow(ResultSet rs, int rowNum) throws SQLException {
//                    return deserializeAccessToken(rs.getBytes(2));
//                }
//            }, extractTokenKey(tokenValue));
//        }
//        catch (EmptyResultDataAccessException e) {
//            if (LOG.isInfoEnabled()) {
//                LOG.info("Failed to find access token for token " + tokenValue);
//            }
//        }
//        catch (IllegalArgumentException e) {
//            LOG.warn("Failed to deserialize access token for " + tokenValue, e);
//            removeAccessToken(tokenValue);
//        }
//
//        return accessToken;
//        log.info("####################### "+extractTokenKey(tokenValue));
//        return super.readAccessToken(tokenValue);
        return accessToken;
    }
}
